package org.groupg.practice;
import okio.BufferedSource;
import okio.Okio;
import okio.Source;
import java.io.File;
import java.io.IOException;

public class OkioReadExample {
    public static void main(String[] args) {
        File file = new File("example.txt");
        if (!file.exists()) {
            System.out.println("文件不存在！");
            return;
        }
        try {
            // 1. 获取 Source 对象
            Source source = Okio.source(file);
            // 2. 包装成 BufferedSource 以获得缓冲功能，提升读取效率:cite[1]:cite[7]
            BufferedSource bufferedSource = Okio.buffer(source);

            // 3. 读取数据：按写入顺序和类型读取
            String text = bufferedSource.readUtf8(); // 读取字符串直到末尾
            // 注意：实际读取时，应知晓数据的确切类型和顺序
            // 例如，如果之前先写了字符串和整数，则应先 readUtf8() 再 readInt()

            System.out.println("读取的内容: " + text);

            // 4. 关闭流，确保资源释放
            // BufferedSource 的 close 方法也会关闭其包装的底层 Source:cite[1]
            bufferedSource.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}